#ifndef __CORE_H__
#define __CORE_H__
#include "stdint.h"
typedef void (*fsm_event_handler_t)(uint32_t event_id, uint32_t event_data);

typedef struct {
    uint32_t event_id;
    uint32_t event_data;
    fsm_event_handler_t event_handler;
} event_t;


void fsm_remove_timer_event(uint32_t event_id);

void fsm_event_dispatch(void);

void fsm_event_schedule_timer_events(uint32_t event_id,
									 uint32_t event_data,
									 fsm_event_handler_t event_handler);


void fsm_event_schedule(uint32_t event_id,
					    uint32_t event_data,
					    fsm_event_handler_t event_handler);

void fsm_init(void);

#endif
